package chapter05_string;

import com.sun.jmx.snmp.SnmpString;

import java.nio.channels.MulticastChannel;
import java.util.Arrays;
import java.util.Comparator;

/**
 * 描述：
 *      给定一个字符串类型的数组strs,请找到-种拼接顺序，使得将所有的字符串拼接起来
 * 组成的大写字符串是所有可能性中字典顺序最小的，并返回这个大写字符串。
 * @author hl
 * @date 2021/9/18 22:16
 */
public class LowestString {
    public String lowestString(String[] strs){
        if (strs == null || strs.length == 0) {
            return "";
        }
//        Arrays.sort(strs, new MyCompare());
        Arrays.sort(strs, (a, b) -> (a + b).compareTo(b + a));
        StringBuilder res = new StringBuilder();
        for (String str : strs) {
            res.append(str);
        }
        return res.toString();
    }
    public class MyCompare implements Comparator<String>{
        @Override
        public int compare(String a, String b) {
            return (a + b).compareTo(b + a);
        }
    }
}
